curl 筆記
前言
正文
最近在K網路架構,有些東西有點概念了。
此時來看這張圖終於瞭解一點。
ref. A Question of Timing
先來看這張圖,
有幾個關鍵字縮寫必須要先知道
SYN : 同步序列號
ACK : 要求回應
FIN :結束
SEQ : 序列號
這邊簡單講,要更詳細的內容,建議去看一下TCP 三向交握 (Three-way Handshake)
在這張圖裡面沒有SEQ這個,因為沒畫出來,在SYN的時候,就會包含SEQ在裡面了。
流程簡單說是這樣的,TCP是有順序性的。
- clinet 詢問DNS server ,網域與IP的對應
- client 發出請求
- server 回應
- client 回應,我知道你回了。
- server 開始建立ssl憑證
- client 發出內容請求
- server 回應內容
- 結束
好了,再來才是講curl ,
先建立一個 txt檔,
\n
# DNS 解析時間,也就是查詢到 IP 的時間\n
time_namelookup: %{time_namelookup}\n
# TCP 連線時間,就是 TCP 三項交握的時間\n
time_connect: %{time_connect}\n
# SSL 連線的時間\n
time_appconnect: %{time_appconnect}\n
# 從開始到最後一個請求的時間,如果網頁有跳轉就會有時間\n
time_redirect: %{time_redirect}\n
# 從開始到響應開始的時間\n
time_pretransfer: %{time_pretransfer}\n
# 從開始到響應開始傳輸的時間\n
time_starttransfer: %{time_starttransfer}\n
----------\n
# 整體時間\n
time_total: %{time_total}\n
\n
curl -w @curl-format.txt -o /dev/null https://daimom3020.blogspot.com/
這邊要注意, @curl-format.txt 這邊不能使用路徑方式去找檔案。如果怕改天找不到檔案的話,
curl 可以改成下面的指令
curl -o /dev/null https://daimom3020.blogspot.com/ -w "
# DNS 解析時間,也就是查詢到 IP 的時間
time_namelookup: %{time_namelookup}
# TCP 連線時間,就是 TCP 三項交握的時間
time_connect: %{time_connect}
# SSL 連線的時間
time_appconnect: %{time_appconnect}
# 從開始到最後一個請求的時間,如果網頁有跳轉就會有時間
time_redirect: %{time_redirect}
# 從開始到響應開始的時間
time_pretransfer: %{time_pretransfer}
# 從開始到響應開始傳輸的時間
time_starttransfer: %{time_starttransfer}
----------
# 整體時間
time_total: %{time_total}
\n"
搭配上方的圖片來看,
這邊顯示的時間是累加的,如果要算出區間的時間,
需要自行做相減。
例如,
要知道server處理資料的時間多長,
可使用 time_starttransfer - time_pretransfer ,
就可得知server處理資料的時間。
ref.
- CURL 詳細資料包含 TCP 與 SSL 連線時間
- CURL -w 參數詳解
- curl命令
- 15 Special Characters You Need to Know for Bash
- Command symbol 符號_Linux
- curl 所有參數介紹
驗證網站是否為http2 ,
簡單說明
-v 顯示呼叫的步驟
-s Silent模式。不輸出任務內容
-o 指定輸出目錄
只用 -s 的話,還是會輸出內容。
只用 -o的話,不會輸出內容
curl https://www.cloudflare.com --http2 -vso /dev/null
是的話,會出現 using http2